Integrated circuits (ICs), such as programmable logic devices (PLDs), may be programmed to implement a wide variety of user designs. Configuration data is generated from a specification of a particular user design and the configuration data is loaded into a PLD to program the PLD to implement the particular user design. The configuration data loaded into the PLD may be stored in the PLD in memory, such as SRAM memory. Each bit of the configuration data stored in SRAM memory may control a programmable resource such as a programmable routing resource or a programmable logic resource of the PLD. The PLD is programmed to implement a particular user design by controlling the programmable routing and logic resources with appropriate values for each bit of the configuration data.
The programming of a PLD with configuration data may intentionally overwrite configuration data previously stored in the PLD. The configuration data stored in a PLD may also be susceptible to unintentional alteration. For example, an atomic particle of cosmic radiation from outer space may enter the Earth's atmosphere and collide with an atom above a PLD. This collision and subsequent secondary collisions may release a narrow stream of many atomic particles including electrically charged atomic particles. The narrow stream of atomic particles may impact an SRAM memory cell storing a bit of the configuration data, and deliver enough electric charge to the SRAM memory cell to invert the bit of configuration data stored in the SRAM memory cell. The altered bit of configuration data may modify the function provided by an associated programmable routing or logic resource and may consequently cause improper operation that deviates from the expected behavior for the user design in the PLD.
While such unintentional alteration of configuration data may be infrequent, the reliability of the operation of a PLD for a user design may be affected by such unintentional alteration of configuration data. Additional approaches may be needed to provide the reliability of operation required for certain high-reliability applications. In addition, as successive generations of PLDs are produced, the number of stored bits of configuration is increasing, and the reliability of the operation of PLDs may be increasingly impacted.
The present invention may address one or more of the above issues.